import LoadManager from "./LoadManager";





// 音乐管理
export class MusicManager {
    private static init: MusicManager = null
    public static get inst(): MusicManager {
        if (!MusicManager.init) {
            MusicManager.init = new MusicManager()
        }
        return MusicManager.init
    }

     private _isOn:boolean=true;//是否开启
    public get isOn(){
        return this._isOn;
    }
    public set isOn(isOn:boolean){
        this._isOn=isOn;
    }
    /**
     * 播放音乐
     * @param url 地址
     * @param loop 循环
     */
    public async PlayMusic(url: string, loop: boolean,cb?: () => void) {
        // 过滤总条件
        if (!this._isOn || !url || url.length == 0) {
            return
        }
        cc.audioEngine.stopMusic()
        let clip:cc.AudioClip=LoadManager.get(url, cc.AudioClip)||await LoadManager.load(url, cc.AudioClip)
        // 加载音频文件
        cc.audioEngine.playMusic(clip, true);
        if (cb) {
            cb();
        }
    }

    /**
     * 暂停音乐
     */
    public PauseMusic(): void {
        // 过滤总条件
        if (!this._isOn) {
            return
        }
        cc.audioEngine.pauseMusic()
    }


    /**
     * 恢复音乐
     */
    public ResumeMusic(): void {
        // 过滤总条件
        if (!this._isOn) {
            return
        }
        cc.audioEngine.resumeMusic()
    }

    /**
     * 停止音乐
     */
    public StopMusic(): void {
        // 过滤总条件
        cc.audioEngine.stopMusic()
    }
    
}